Mini Migrations for NodeJS
![GitHub](https://img.shields.io/github/license/markwylde/node-mini-migrations)
A really simple node migrations library that is completely independant of any database or file system.
Installation
npm install --save node-mini-migrations
Example Usage
driver
const sqlite = require('sqlite-fp');
const righto = require('righto');
const up = require('node-mini-migrations/up');
function migrator (db) {
return {
init: (direction, callback) => {
sqlite.run(db, 'CREATE TABLE IF NOT EXISTS _migrations (file TEXT PRIMARY KEY);', callback);
},
getMigrationState: (id, callback) => {
sqlite.getOne(db, 'SELECT file FROM _migrations WHERE file = ?', [id], callback);
},
setMigrationUp: (id, callback) => {
sqlite.run(db, 'INSERT INTO _migrations (file) VALUES (?)', [id], callback);
},
setMigrationDown: (id, callback) => {
sqlite.run(db, 'DELETE FROM _migrations WHERE file = ?', [id], callback);
},
handler: (fn, callback) => fn(db, callback)
};
};
const db = righto(sqlite.connect, './test.sqlite');
const driver = righto.sync(migrator, db);
const migrations = getMigrationsFromDirectory('./test/migrations');
const migrated = righto(up, driver, migrations);
migrated(callback)
migration
module.exports = {
up: db => {
return db.exec('CREATE TABLE test_table (test TEXT)')
},
down: db => {
return db.exec('DROP TABLE test_table')
}
}
License
This project is licensed under the terms of the MIT license.